package com.surprise.redis;

import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;

import lombok.extern.log4j.Log4j;

import org.apache.commons.io.IOUtils;
import org.springframework.stereotype.Component;

import com.google.common.collect.Maps;

/**
 * LuaLoader.java
 * @author nick
 * 2015年2月10日
 */
@Log4j
@Component
public class LuaLoader {
    private static Map<String, String> luas = Maps.newHashMap();

    static {
        init();
    }

    public static void init() {
        String path = LuaLoader.class.getResource("/lua").getPath();
        File dir = new File(path);
        for (File file : dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.isFile() && pathname.getName().endsWith(".lua");
            }
        })) {
            try {
                String lua = IOUtils.toString(new FileReader(file));
                String key = file.getName().substring(0,
                        file.getName().lastIndexOf(".lua"));
                luas.put(key, lua);
            } catch (IOException e) {
                log.error("", e);
            }
        }
    }

    public static String getLua(String key) {
        return luas.get(key);
    }
}
